package com.mfangsoft.zhuangjialong.integration.usermanage.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.mfangsoft.zhuangjialong.common.model.Page;
import com.mfangsoft.zhuangjialong.common.utils.stereotype.WriterRepository;
import com.mfangsoft.zhuangjialong.integration.user.model.UserInfoEntity;
import com.mfangsoft.zhuangjialong.integration.usermanage.model.BaseUserManage;
import com.mfangsoft.zhuangjialong.integration.usermanage.model.BaseUserManagerModel;
@WriterRepository
public interface BaseUserManageMapper {
    /**
     * 通过主键删除  
     *
     * @MLTH_generated
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * 插入数据  
     *
     * @MLTH_generated
     */
    int insert(BaseUserManage record);
    
    void addUserManage(BaseUserManage baseUserManage);

    /**
     * 通过主键查询数据 
     *
     * @MLTH_generated
     */
    BaseUserManage selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(BaseUserManage record);
    
    List<BaseUserManage> selectUserManageForPage(Page<Map<String,Object>> param);
    
    BaseUserManagerModel selectUserManageOne(int id);

    /**
     * 通过主键更新数据  
     *
     * @MLTH_generated
     */
    int updateByPrimaryKey(BaseUserManage record);

	void updateUserManageOne(BaseUserManage baseUserManage);

	/**
	 * 根据导购名字查询他的id
	 * @param typistName
	 * @return
	 */
	List<Integer> selectUserManagersByUName(String typistName);

	/**
	 * 根据消费者id和店铺id获取消费者的专属导购
	 * @param map
	 * @return
	 */
	Integer selectExclusiveConsultant(Map<String, Object> map);  

	/** 
	 * 查看当前店铺除了当前导购的所有导购
	 * @param map
	 * @return
	 */
	//TODO
	List<BaseUserManage> selectAllUserManager(Map<String, Object> map);

	/**
	 * 为消费者重新分配店员
	 * @param map
	 */
	void updateCustomerUserManager(Map<String, Object> map);

	/**
	 *  批量为消费者重新分配店员
	 * @param map
	 */
	void updateCustomerUserManagerBath(Map<String, Object> map);

	/**
	 * 根据人员账号查看账号是否已经使用
	 * @param user_name
	 * @return
	 */
	BaseUserManage selectUserManageName(String user_name);

	/**
	 * 人员任务设置的活动列表
	 * @param page
	 * @return
	 */
	List<Map<String, Object>> selectUserActivityForPage(Page<Map<String, Object>> param);

	/**
	 * 人员任务设置树的店铺
	 * @param map
	 * @return
	 */
	List<Map<String, Object>> selectUserInfo(Map<String, Object> map);

    /**
     * 人员任务设置树的人员
     * @param map
     * @return
     */
	List<Map<String, Object>> selectUserManagerByActivityId(Map<String, Object> map);

	/**
	 * 人员设置任务的任务列表
	 * @param page
	 * @return
	 */
	List<Map<String, Object>> selectUserManagerActivityTaskListForPage(Page<Map<String, Object>> param);

	/**
	 * 通过商铺id查看该商铺下没有设置任务的导购的数量
	 * @param shop_id
	 * @param activity_id
	 * @return
	 */
	Integer selectUnSetTaskUserManagerNum(@Param(value = "shop_id") Long shop_id, @Param(value = "activity_id") Long activity_id);

	


	

	


	
}